1. Field of the Invention
The present invention is related to the field of sound generation, and, more particularly, to generating musical sounds using wave table synthesis.
2. Description of the Related Art
Various sounds including musical sounds can be generated synthetically, or synthesized, by controlling certain sound-related attributes such as the frequency and timbral characteristics of an initial signal. In particular, devices for musical sound synthesis can control an input reference signal over a dynamic range so as to accommodate the frequency characteristics of different instruments performing a particular musical note or notes.
A sound synthesizer can be digital or analog in nature. One type of digital synthesizer implements a technique commonly referred to as wave table synthesis. In wave table synthesis, the synthesizer produces sound by playing back stored digital data. The stored digital data can be based on samples of an underlying periodic signal. The playback is digitally sped up or slowed down to alter pitch, thereby providing a range of pitch. Moreover, to generate sustained musical notes, a loop technique can be employed in which the data sequence repeats so as to extend the time of the synthesized musical note.
The sound synthesizer also typically includes an audio output device comprising various components such as time-varying filters, modulators, and oscillators that are used to generate acoustic sound signals, the acoustic sound signals being based upon the digital samples of the underlying periodic signal of a musical note performed by a particular instrument. The sound synthesizer is thus able to mimic the sounds of the musical instrument by electronically controlling the various components of the audio output device in accordance with the parameters dictated by the digital samples.
Computer or processor-based musical sound synthesis can be effected, for example, by processing a sound file that conforms to a protocol such as the Musical Instrument Digital Interface (MIDI). A MIDI-conformable device typically includes a MIDI sound engine for processing a MIDI sound file. In processing the sound file, the MIDI sound engine ordinarily accesses waveforms stored in a MIDI wave table. The MIDI wave table stores sampled sound data for playback during a MIDI-based synthesis. The MIDI sound file specifies a note or notes, the instrument on which the note or notes are played, and the duration of the musical note or notes.
Musical sound synthesis by the MIDI-conformable device, entails the MIDI sound engine performing a look-up operation for the sampled sound data, or waveform, corresponding to the musical note or notes of a musical instrument that the sound file indicates is to be synthesized. The selected waveform dictates the parameters that are used by the sound engine to control the sound output device. Thus, based on the parameters of the waveforms, the MIDI sound engine controls a connected audio output device to mimic the particular note or notes of an instrument as indicated in the sound file.
Storing the sound sample, or waveforms, can necessitate the use of more memory space than is optimal. This is especially so, given that it is sometimes desirable to incorporate a musical sound synthesis capability in a device in which memory allocation is a significant constraint, such as in a hand-held device like a mobile phone. One approach has been to store not the sound data or waveforms themselves, but rather the coefficients or parameters of the waveforms that are representative of the underlying musical sound signals. These coefficients or parameters are then supplied to the sound engine directly so that the desired musical sound can be synthesized.
A particular problem with this approach, especially in the context of a MIDI-conformable device, can be that some or all of the components of the synthesizing device—the sound engine, wave table, and related components—may have to be reconfigured to accommodate the sound engine's processing of the coefficients. An efficient system fails to exist that reduces the memory requirement for carrying out musical sound synthesis, but without necessitating a wholesale or partial reconfiguration of the sound engine, wave table, or other components needed to effect the synthesis.